home *** CD-ROM | disk | FTP | other *** search
/ Audio Version 4.94 / audioversion4.94knowledgemediaresourcelibraryoctober1994.iso / mac / midi / encrdm20.hqx / Encore 2.0.5 Demo folder / Encore.rsrc / PREC_103 < prev    next >
Text File  |  1992-05-18  |  4KB  |  204 lines

  1. /BigDict 300 dict def
  2. BigDict begin
  3.  
  4. %--- Some definitions ---
  5. /XD {exch def} def
  6. /_SLW {setlinewidth} def
  7. /_SW {stringwidth} def
  8. /mydc {4 mul round 4 div exch 4 mul round 4 div exch} def
  9. /_MT {mydc moveto} def
  10. /LnW 75 100 div def
  11. /SLT 03 2 div def
  12.  
  13. %--- Create arrays to hold staff info ---
  14. /STopAry 64 array def
  15. /SBotAry 64 array def
  16. /NStr 8 string def
  17. /ChStr 1 string def
  18. /CFudge [ 1 2 4 8 ] def
  19.  
  20. %--- GetYPos( ScalePos ) ---
  21. /GY_{
  22. 10 sub StepSize mul
  23. STopAry _CSF get add def
  24. }def
  25.  
  26. %--- DrawChar( X0, Y0, Ch ) ---
  27. /DC_{
  28. /Ch XD /Y0 exch GY_ /X0 XD
  29. ChStr 0 Ch put
  30. X0 Y0 moveto ChStr show
  31. }def
  32.  
  33. %--- DrawLine( X0, Y0, X1, Y1 )
  34. /DL_{
  35. /Y1 XD /X1 XD /Y0 XD /X0 XD
  36. X0 Y0 moveto X1 Y1 lineto stroke
  37. }def
  38.  
  39. %--- NoteWidth() ---
  40. /NW_{
  41. /CW (q) _SW pop (|) _SW pop sub def
  42. /BGap SpaceSize .75 mul def
  43. /BH StepSize def
  44. }def
  45.  
  46. %--- GraceWidth() ---
  47. /GW_{
  48. /|______Sonata findfont FSize .50 mul scalefont setfont
  49. /CW (q) _SW pop (|) _SW pop sub def
  50. /BGap SpaceSize .40 mul def
  51. /BH StepSize .50 mul def
  52. /SpaceSize SpaceSize .50 mul def
  53. }def
  54.  
  55. %--- DrawStaff( X0, Y0, X1 ) ---
  56. /DSS_
  57. {/X1 XD /Y0 XD /X0 XD
  58. /_CSF _CSF 1 add def
  59. SBotAry _CSF Y0 put
  60. STopAry _CSF Y0 FSize add put
  61. /StaffBase Y0 SpaceSize sub def
  62. /Temp (=) _SW pop def
  63. X0 Y0 moveto
  64. X1 X0 sub Temp div cvi
  65. { (=) show } repeat
  66. X1 Temp sub Y0 moveto (=) show
  67. }def
  68.  
  69. %--- DrawBarLine( X0, FromStaff, ToStaff ) ---
  70. /DBL_
  71. {/TS XD /FS XD /X0 XD
  72. /Y0 STopAry FS get def
  73. /Y1 SBotAry TS get def
  74. X0 Y0 moveto
  75. X0 Y1 lineto stroke
  76. }def
  77.  
  78. %--- ScaleFont( FIndex ) ---
  79. /SF_
  80. {/FIndex XD
  81. /FSize [ 14 18 24 36 ] FIndex get def
  82. /|______Sonata findfont FSize scalefont setfont
  83. /SpaceSize FSize 4 div def
  84. /StepSize FSize 8 div def
  85. }def
  86.  
  87. %--- DrawMeter( X0, MeterH, MeterL ) ---
  88. /DM_
  89. {/ML XD /MH XD /X0 XD
  90. /MH MH NStr cvs def
  91. STopAry _CSF get
  92. SpaceSize sub
  93. X0 MH _SW pop 2 div sub exch moveto MH show
  94. /ML ML NStr cvs def
  95. SBotAry _CSF get
  96. SpaceSize add
  97. X0 ML _SW pop 2 div sub exch moveto ML show
  98. }def
  99.  
  100. %--- DrawStem( X0, Y0, StemHeight ) ---
  101. /DS_{
  102. /SH exch StepSize mul def /Y0 exch GY_ /X0 XD
  103. /Y1 Y0 SH add def
  104. DoStem
  105. }def
  106.  
  107. %--- DoStem X0, Y0, Y1 ---
  108. /DoStem{
  109. Y1 Y0 ge
  110. {/Temp (\307) def /Dir 1 SpaceSize mul def /Dy Y1 Y0 sub def}
  111. {/Temp (\310) def /Dir -1 SpaceSize mul def /Dy Y0 Y1 sub def}ifelse
  112. Dy SpaceSize div cvi
  113. {X0 Y0 moveto Temp show /Y0 Y0 Dir add def} repeat
  114. X0 Y1 Dir sub moveto Temp show
  115. }def
  116.  
  117. %--- DrawBeamStem( X0, YPos, Shifted ) ---
  118. /DBS_{
  119. /SH XD /Y0 exch GY_ /X0 XD
  120. 0 SH eq
  121. {/Temp 0 def} 
  122. {/Temp CW def}ifelse
  123. /Y1 X0 Temp add BX0 sub BDy mul BDx div BY0 add def
  124. DoStem
  125. }def
  126.  
  127. %--- DrawBeamLine( X0, Y0, X1, Y1 ) ---
  128. /DBL_{
  129. BH cvi
  130. {X0 Y0 moveto X1 Y1 lineto stroke
  131. /Y0 Y0 BDir add def /Y1 Y1 BDir add def}repeat
  132. }def
  133.  
  134. %--- DrawBeam( X0, Y0, SH0, X1, Y1, SH1 ) ---
  135. /DBM_{
  136. /SH1 XD /BY1 exch GY_ /BX1 XD
  137. /SH0 XD /BY0 exch GY_ /BX0 XD
  138. 1 _SLW
  139. 0 SH0 ne
  140. {/BDir -1 def /BX0 BX0 CW add def}
  141. {/BDir 1 def} ifelse
  142. 0 SH1 ne {/BX1 BX1 CW add def}if
  143. /BDx BX1 BX0 sub def /BDy BY1 BY0 sub def
  144. /X0 BX0 def /X1 BX1 def
  145. /Y0 BY0 def /Y1 BY1 def
  146. DBL_
  147. }def
  148.  
  149. %--- DrawBeamPart( X0, SH0, X1, SH1, YOffset ) ---
  150. /DBP_{
  151. /Temp exch BGap mul def
  152. /SH1 XD /X1 XD
  153. /SH0 XD /X0 XD
  154. 0 SH0 ne {/X0 X0 CW add def}if
  155. 0 SH1 ne {/X1 X1 CW add def}if
  156. /Y0 X0 BX0 sub BDy mul BDx div BY0 add def
  157. /Y1 X1 BX0 sub BDy mul BDx div BY0 add def
  158. /Y0 Y0 Temp add def /Y1 Y1 Temp add def
  159. DBL_
  160. }def
  161.  
  162. %--- Slur( X1, Y1, X2, Y2, X3, Y3, X4, Y4 ) ---
  163. /SLR_{
  164. /Y4 XD /X4 XD /Y3 XD /X3 XD
  165. /Y2 XD /X2 XD /Y1 XD /X1 XD
  166. /Y2 Y2 Y1 sub 3 div Y2 add def
  167. /Y3 Y3 Y4 sub 3 div Y3 add def
  168. X2 X1 eq{/X3 X4 def /X2 X4 X1 sub 2 div X1 add def
  169. /Y3 Y1 Y4 sub 2 div Y4 add def}if
  170. X3 X4 eq Y3 Y4 eq and{/X2 X1 def /X3 X4 X1 sub 2 div X1 add def
  171. /Y2 Y1 Y4 sub 2 div Y4 add def}if
  172. newpath .25 _SLW X1 Y1 _MT X2 Y2 X3 Y3 X4 Y4 curveto
  173. Y2 Y1 eq Y3 Y4 eq or{Y4 Y1 lt{/Y2 Y2 SLT add def /Y3 Y3 SLT add def}
  174. {/Y2 Y2 SLT sub def /Y3 Y3 SLT sub def}ifelse}
  175. {Y2 Y1 lt{/Y2 Y2 SLT add def}{/Y2 Y2 SLT sub def}ifelse
  176. Y3 Y4 lt{/Y3 Y3 SLT add def}{/Y3 Y3 SLT sub def}ifelse}ifelse
  177. X3 Y3 X2 Y2 X1 Y1 curveto closepath fill LnW _SLW
  178. }def
  179.  
  180. %--- Brace( X1, Y1, Y2 ) -----
  181. /Brace_{
  182. /Y2 XD /Y1 XD /X1 XD
  183. gsave
  184. /FC Y1 Y2 sub FSize 4 mul div def
  185. FC FC scale
  186. /X1 X1 (\247) _SW pop FC mul sub FC div def
  187. X1 Y1 FSize FC mul sub FC div moveto (\247) show
  188. X1 Y1 FSize 3 mul FC mul sub FC div moveto (\352) show
  189. grestore
  190. }def
  191.  
  192. %------- SClef( X0, YPos, Ch ) --------
  193. /SClef_{
  194. /Ch XD /Y0 exch GY_ /X0 XD
  195. ChStr 0 Ch put
  196. 63 Ch eq
  197. {/Y0 Y0 CFudge FIndex get add def} if
  198. X0 Y0 moveto
  199. gsave
  200. .75 .75 scale
  201. ChStr show
  202. grestore
  203. }def
  204.